package com.idlecode.statics;

import java.util.ArrayList;
import java.util.List;

import com.idlecode.config.template.TemplateInfo;

/**
 * @program: IdleCode
 * @description
 * @author: rongjuwei
 * @create: 2024-04-25 15:16
 **/
public class TemplateInfoStatic {

	public final static String[] TemplateInfoNames = new String[] { "Controller.java", "Entity.java", "BaseEntity.java",
			"Mapper.java", "Mapper.xml", "BaseMapper.xml", "Service.java", "ServiceImpl.java" };

	public static List<TemplateInfo> getTemplates(List<String> selectedGenFileItems, boolean isFormatException) {
		List<TemplateInfo> templateList = new ArrayList<>();
		for (String selectedGenFileItem : selectedGenFileItems) {
			if ("Controller.java".equals(selectedGenFileItem)) {
				if (isFormatException) {
					TemplateInfo templateInfo = new TemplateInfo();
					templateInfo.setTemplateName("java/Controller-FormatE.java.ftl");
					templateInfo
							.setGeneratorPath("${packageName}/${packagePath}/controller/${ClassName}Controller.java");
					templateList.add(templateInfo);

				} else {
					TemplateInfo templateInfo = new TemplateInfo();
					templateInfo.setTemplateName("java/Controller.java.ftl");
					templateInfo
							.setGeneratorPath("${packageName}/${packagePath}/controller/${ClassName}Controller.java");
					templateList.add(templateInfo);
				}
			}
			if ("Entity.java".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("java/Entity.java.ftl");
				templateInfo.setGeneratorPath("${packageName}/${packagePath}/entity/${ClassName}Entity.java");
				templateList.add(templateInfo);
			}
			if ("BaseEntity.java".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("java/BaseEntity.java.ftl");
				templateInfo.setGeneratorPath("${packageName}/${packagePath}/entity/base/${ClassName}BaseEntity.java");
				templateList.add(templateInfo);
			}
			if ("Mapper.java".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("java/Mapper.java.ftl");
				templateInfo.setGeneratorPath("${packageName}/${packagePath}/mapper/${ClassName}Mapper.java");
				templateList.add(templateInfo);
			}
			if ("Mapper.xml".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("xml/Mapper.xml.ftl");
				templateInfo.setGeneratorPath("${packageName}/${packagePath}/mapper/${ClassName}Mapper.xml");
				templateList.add(templateInfo);
			}
			if ("BaseMapper.xml".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("xml/BaseMapper.xml.ftl");
				templateInfo.setGeneratorPath("${packageName}/${packagePath}/mapper/base/${ClassName}BaseMapper.xml");
				templateList.add(templateInfo);
			}
			if ("Service.java".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("java/Service.java.ftl");
				templateInfo.setGeneratorPath("${packageName}/${packagePath}/service/${ClassName}Service.java");
				templateList.add(templateInfo);
			}
			if ("ServiceImpl.java".equals(selectedGenFileItem)) {
				TemplateInfo templateInfo = new TemplateInfo();
				templateInfo.setTemplateName("java/ServiceImpl.java.ftl");
				templateInfo
						.setGeneratorPath("${packageName}/${packagePath}/service/impl/${ClassName}ServiceImpl.java");
				templateList.add(templateInfo);
			}
		}
		return templateList;
	}
}
